Increasingly, the Internet is becoming more popular as a medium for electronic transactions, for example, between a customer's client computer and a vendor's server computer. The Internet is a network of computer networks having no single owner or controller and including large and small, public and private networks. Any connected computer running Internet Protocol (IP) software is, subject to security controls, capable of exchanging information with any other computer that is also connected to the Internet.
The World Wide Web (WWW) is a wide area information retrieval facility which provides access to an enormous quantity of network-accessible information and which can provide low cost communications between computers in a distributed environment. Web browser technology, a Web browser being an application running on a client computer, has propelled the Internet to what has now become a pervasive and nearly universal information superhighway whereby a wealth of information can be readily retrieved and delivered to any requesting end user. Web browsers, for example, Netscape Navigator (Netscape Navigator is a registered trademark of Netscape Communications Corporation) or Microsoft Internet Explorer (Microsoft Internet Explorer is a trademark of Microsoft Corporation), enable users to access information by specification of a link via a Uniform Resource Locator (URL) and to navigate between different Web pages.
Along with the increase in the level of activities on the Internet, the need to exchange sensitive information over secured channels becomes important as well. For example, in a typical transaction, a customer at a client computer with Internet access to a vendors' Web site, can manually check lists of the latest available versions of products and then order and purchase the products on-line.
There is obviously a need to provide a secure environment for transactions and communications between computers. Secure Sockets Layer (SSL) protocol is a de-facto standard from Netscape Communications Corporation for establishing a secure channel for communication over the Internet, whereby data can be sent securely utilising that channel, between a server computer and a client computer. Essentially, SSL aims to provide an environment for (mainly) secure financial transactions and utilises public key encryption.
The SSL protocol is comprised of two sub-protocols, namely, the SSL Record protocol and the SSL Handshake protocol. The SSL Record protocol is layered on top of some reliable transport protocol, such as the Transport Control Protocol (TCP) and defines the format for data transmission. The SSL Handshake protocol utilises the SSL Record protocol to allow a server computer and client computer to authenticate each other and negotiate an encryption algorithm and cryptographic keys before any data is communicated.
While the SSL protocol is designed for use in many applications, its main application has been with Web browsers. By issuing an “https://” (Hypertext Transfer Protocol with SSL) addressing command to the Web browser rather than an “http://” (Hypertext Transfer Protocol command), a transaction through a secured communication channel is requested. The Web browser responds accordingly by establishing a secured communication channel to carry out secured transactions between a client computer and a server computer.
The problem with application to application communication in SSL is that a client computer at a higher version level of communication requests than the respective server computer, must only communicate with the server computer utilising requests at the lower version supported by the server computer. Additionally, a server computer at a particular current version level can accept requests at either that particular current version, or requests at a lower version than that particular current version. This is undesirable because, in effect, client computers (or server computers) are utilising an outdated version of requests.
Furthermore, in other communication techniques, if a client computer communicates with a server computer utilising requests at a previous version level, the client computer's request may be rejected altogether. For example, in HTTP, an error occurs when a client computer sends a request at a version level that the server computer does not support or refuses to support. Alternatively, the relevant proxy or gateway is made to downgrade to the request version level being utilised by the client computer.
U.S. Pat. No. 6,199,204 B1 provides a method and mechanism for automating updating of computer programs. Conventionally, computer programs have been distributed on a recording medium for users to install on their computer systems. Each time fixes, additions or new versions for the programs were developed, a new CD or diskette is required to be delivered to users to enable them to install the update. More recently some software has been downloadable across a network, but the effort for users to obtain and install updates and the effort for software vendors to distribute updates remains undesirable. The invention provides an updater agent which is associated with a computer program and which accesses relevant network locations and automatically downloads and installs any available updates to its associated program if those updates satisfy predefined update criteria of the updater agent. The updater agents are able to communicate with each other and so a first updater agent can request updates to programs that are prerequisites to its associated program. This prior art utilises agents to update software programs, whereby the updating depends on predefined criteria. Additionally, it is software programs that are updated, rather than requests between computers.
Generally, it should not be assumed that a customer wanting to do business with a vendor is utilising the latest version of communications means.
Also, it is undesirable to turn away a customer wishing to carry out an electronic business transaction, even if he/she has a previous version of communications means. Therefore, there is a need to accept a customer's transactions, whilst also maintaining the version level of communications means being utilised at both the server and client end.